feat(platform): inject x-uipath-traceparent-id on all outbound HTTP requests#1535
Merged
feat(platform): inject x-uipath-traceparent-id on all outbound HTTP requests#1535
Conversation
JosephMar
approved these changes
Apr 1, 2026
… HTTP requests
Adds UiPath trace context propagation to BaseService so every outbound
HTTP call (ECS, Orchestrator, LLM Gateway, etc.) carries the
x-uipath-traceparent-id header with the active OTEL trace/span IDs.
This enables downstream services to correlate requests back to agent
traces in App Insights, which is critical for debugging failures like
"DeepRAG content not available" where today there is no way to link
the agent trace to the CG service logs.
Header format follows UiPath convention (per TraceView client SDK spec):
x-uipath-traceparent-id: 00-{trace_id}-{span_id}-01
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
328833f to
9f9c0f1
Compare
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
bc16056 to
0c8254a
Compare
cfauchere
pushed a commit
to UiPath/uipath-langchain-python
that referenced
this pull request
Apr 1, 2026
Picks up x-uipath-traceparent-id trace context propagation from uipath-platform 0.1.18 (UiPath/uipath-python#1535). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
cfauchere
pushed a commit
to UiPath/uipath-langchain-python
that referenced
this pull request
Apr 1, 2026
Picks up x-uipath-traceparent-id trace context propagation from uipath-platform 0.1.18 (UiPath/uipath-python#1535). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
cfauchere
pushed a commit
to UiPath/uipath-langchain-python
that referenced
this pull request
Apr 1, 2026
Picks up x-uipath-traceparent-id trace context propagation from uipath-platform 0.1.18 (UiPath/uipath-python#1535). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
x-uipath-traceparent-idheader on every outbound HTTP request from BaseServicerequest) and async (request_async) pathsContext
Today there is no way to correlate agent traces with downstream service logs. When a DeepRAG call fails with "DeepRAG content not available", the agent trace has no operation ID and ECS has no trace ID — complete dead end for debugging.
Per the TraceView client SDK spec, the
x-uipath-traceparent-idheader uses W3C format:00-{trace_id}-{span_id}-{trace_flags}. The trace/span IDs come from the active OTEL span context (set by@traceddecorators on SDK methods).Changes
_base_service.py: Added_inject_trace_context()helper that reads the active OTEL span and formats the headerrequest()andrequest_async()before every outbound callopentelemetry-apiis already available transitively viauipath-coreTest plan
🤖 Generated with Claude Code